package com.itheima.kuaipai;

import java.util.Arrays;

public class Demo04 {

    public static void main(String[] args) {
        int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
       /* kuaipai(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));*/
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));

    }

    //定义方法 完成快排
    //参数 数组   设计两个范围
    //返回值 void
    public static void kuaipai(int[] arr, int begin, int end) {
        //出口
        if (begin > end) {
            return;
        }
        //只玩一次
        // 起始索引
        int left = begin;

        // 结束索引
        int right = end;
        //找一个基准数
        int number = arr[begin];
        //循环 找基准数的位置
        while (left != right) {
            // 从右边找比基准数小的
            while (arr[right] >= number && left < right) {
                right--;
            }
            // 左边找比基准数大的
            while (arr[left] <= number && left < right) {
                left++;
            }
            //arr[left]>number
            //arr[right]<number
            // 各自停下来  交换
            int temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
        }
        //基准数 归位
        //arr[left]   arr[0]
        int temp = arr[left];
        arr[left] = arr[begin];
        arr[begin] = temp;

        // 左边的 继续
        kuaipai(arr, begin, left - 1);

        //右边的也继续
        kuaipai(arr, left + 1, end);
    }
}
